/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package controller;

import dao.EspecialidadeDaoLocal;
import entities.EspecialidadeMedica;
import exception.EspecialidadeExistsException;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;

/**
 *
 * @author Sostenes, Thiago, Felipe
 */
@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
public class EspecialidadeController implements EspecialidadeControllerLocal {

    @EJB
    private EspecialidadeDaoLocal especialidadeDao;

    @Override
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void persist(EspecialidadeMedica especialidadeMedica) throws EspecialidadeExistsException {
        if (especialidadeDao.exists(especialidadeMedica)) {
            throw new EspecialidadeExistsException(especialidadeMedica);
        }
        especialidadeDao.create(especialidadeMedica);
    }

    @Override
    public EspecialidadeMedica createEspecialidade() {
        return new EspecialidadeMedica();
    }


    @Override
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void remove(EspecialidadeMedica especialidade) {
        especialidadeDao.remove(especialidade);
    }


    @Override
    public List<EspecialidadeMedica> list() {
        return especialidadeDao.list();
    }
}
